package com.library.BookCata.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class BookCataExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Long offset;

    public BookCataExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Long offset) {
        this.offset = offset;
    }

    public Long getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("`name` is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("`name` is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("`name` =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("`name` <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("`name` >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("`name` >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("`name` <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("`name` <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("`name` like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("`name` not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("`name` in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("`name` not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("`name` between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("`name` not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNull() {
            addCriterion("author is null");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNotNull() {
            addCriterion("author is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorEqualTo(String value) {
            addCriterion("author =", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotEqualTo(String value) {
            addCriterion("author <>", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThan(String value) {
            addCriterion("author >", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThanOrEqualTo(String value) {
            addCriterion("author >=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThan(String value) {
            addCriterion("author <", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThanOrEqualTo(String value) {
            addCriterion("author <=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLike(String value) {
            addCriterion("author like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotLike(String value) {
            addCriterion("author not like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorIn(List<String> values) {
            addCriterion("author in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotIn(List<String> values) {
            addCriterion("author not in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorBetween(String value1, String value2) {
            addCriterion("author between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotBetween(String value1, String value2) {
            addCriterion("author not between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andCatalogerIsNull() {
            addCriterion("cataloger is null");
            return (Criteria) this;
        }

        public Criteria andCatalogerIsNotNull() {
            addCriterion("cataloger is not null");
            return (Criteria) this;
        }

        public Criteria andCatalogerEqualTo(String value) {
            addCriterion("cataloger =", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerNotEqualTo(String value) {
            addCriterion("cataloger <>", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerGreaterThan(String value) {
            addCriterion("cataloger >", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerGreaterThanOrEqualTo(String value) {
            addCriterion("cataloger >=", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerLessThan(String value) {
            addCriterion("cataloger <", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerLessThanOrEqualTo(String value) {
            addCriterion("cataloger <=", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerLike(String value) {
            addCriterion("cataloger like", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerNotLike(String value) {
            addCriterion("cataloger not like", value, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerIn(List<String> values) {
            addCriterion("cataloger in", values, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerNotIn(List<String> values) {
            addCriterion("cataloger not in", values, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerBetween(String value1, String value2) {
            addCriterion("cataloger between", value1, value2, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCatalogerNotBetween(String value1, String value2) {
            addCriterion("cataloger not between", value1, value2, "cataloger");
            return (Criteria) this;
        }

        public Criteria andCataDateIsNull() {
            addCriterion("cata_date is null");
            return (Criteria) this;
        }

        public Criteria andCataDateIsNotNull() {
            addCriterion("cata_date is not null");
            return (Criteria) this;
        }

        public Criteria andCataDateEqualTo(Date value) {
            addCriterion("cata_date =", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateNotEqualTo(Date value) {
            addCriterion("cata_date <>", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateGreaterThan(Date value) {
            addCriterion("cata_date >", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateGreaterThanOrEqualTo(Date value) {
            addCriterion("cata_date >=", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateLessThan(Date value) {
            addCriterion("cata_date <", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateLessThanOrEqualTo(Date value) {
            addCriterion("cata_date <=", value, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateIn(List<Date> values) {
            addCriterion("cata_date in", values, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateNotIn(List<Date> values) {
            addCriterion("cata_date not in", values, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateBetween(Date value1, Date value2) {
            addCriterion("cata_date between", value1, value2, "cataDate");
            return (Criteria) this;
        }

        public Criteria andCataDateNotBetween(Date value1, Date value2) {
            addCriterion("cata_date not between", value1, value2, "cataDate");
            return (Criteria) this;
        }

        public Criteria andBkIdIsNull() {
            addCriterion("bk_id is null");
            return (Criteria) this;
        }

        public Criteria andBkIdIsNotNull() {
            addCriterion("bk_id is not null");
            return (Criteria) this;
        }

        public Criteria andBkIdEqualTo(Integer value) {
            addCriterion("bk_id =", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdNotEqualTo(Integer value) {
            addCriterion("bk_id <>", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdGreaterThan(Integer value) {
            addCriterion("bk_id >", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("bk_id >=", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdLessThan(Integer value) {
            addCriterion("bk_id <", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdLessThanOrEqualTo(Integer value) {
            addCriterion("bk_id <=", value, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdIn(List<Integer> values) {
            addCriterion("bk_id in", values, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdNotIn(List<Integer> values) {
            addCriterion("bk_id not in", values, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdBetween(Integer value1, Integer value2) {
            addCriterion("bk_id between", value1, value2, "bkId");
            return (Criteria) this;
        }

        public Criteria andBkIdNotBetween(Integer value1, Integer value2) {
            addCriterion("bk_id not between", value1, value2, "bkId");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(String value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(String value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(String value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(String value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(String value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(String value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLike(String value) {
            addCriterion("price like", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotLike(String value) {
            addCriterion("price not like", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<String> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<String> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(String value1, String value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(String value1, String value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andBkTypeIsNull() {
            addCriterion("bk_Type is null");
            return (Criteria) this;
        }

        public Criteria andBkTypeIsNotNull() {
            addCriterion("bk_Type is not null");
            return (Criteria) this;
        }

        public Criteria andBkTypeEqualTo(String value) {
            addCriterion("bk_Type =", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeNotEqualTo(String value) {
            addCriterion("bk_Type <>", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeGreaterThan(String value) {
            addCriterion("bk_Type >", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeGreaterThanOrEqualTo(String value) {
            addCriterion("bk_Type >=", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeLessThan(String value) {
            addCriterion("bk_Type <", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeLessThanOrEqualTo(String value) {
            addCriterion("bk_Type <=", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeLike(String value) {
            addCriterion("bk_Type like", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeNotLike(String value) {
            addCriterion("bk_Type not like", value, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeIn(List<String> values) {
            addCriterion("bk_Type in", values, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeNotIn(List<String> values) {
            addCriterion("bk_Type not in", values, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeBetween(String value1, String value2) {
            addCriterion("bk_Type between", value1, value2, "bkType");
            return (Criteria) this;
        }

        public Criteria andBkTypeNotBetween(String value1, String value2) {
            addCriterion("bk_Type not between", value1, value2, "bkType");
            return (Criteria) this;
        }

        public Criteria andLanguageIsNull() {
            addCriterion("`language` is null");
            return (Criteria) this;
        }

        public Criteria andLanguageIsNotNull() {
            addCriterion("`language` is not null");
            return (Criteria) this;
        }

        public Criteria andLanguageEqualTo(String value) {
            addCriterion("`language` =", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageNotEqualTo(String value) {
            addCriterion("`language` <>", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageGreaterThan(String value) {
            addCriterion("`language` >", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageGreaterThanOrEqualTo(String value) {
            addCriterion("`language` >=", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageLessThan(String value) {
            addCriterion("`language` <", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageLessThanOrEqualTo(String value) {
            addCriterion("`language` <=", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageLike(String value) {
            addCriterion("`language` like", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageNotLike(String value) {
            addCriterion("`language` not like", value, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageIn(List<String> values) {
            addCriterion("`language` in", values, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageNotIn(List<String> values) {
            addCriterion("`language` not in", values, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageBetween(String value1, String value2) {
            addCriterion("`language` between", value1, value2, "language");
            return (Criteria) this;
        }

        public Criteria andLanguageNotBetween(String value1, String value2) {
            addCriterion("`language` not between", value1, value2, "language");
            return (Criteria) this;
        }

        public Criteria andSizeIsNull() {
            addCriterion("`size` is null");
            return (Criteria) this;
        }

        public Criteria andSizeIsNotNull() {
            addCriterion("`size` is not null");
            return (Criteria) this;
        }

        public Criteria andSizeEqualTo(String value) {
            addCriterion("`size` =", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeNotEqualTo(String value) {
            addCriterion("`size` <>", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeGreaterThan(String value) {
            addCriterion("`size` >", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeGreaterThanOrEqualTo(String value) {
            addCriterion("`size` >=", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeLessThan(String value) {
            addCriterion("`size` <", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeLessThanOrEqualTo(String value) {
            addCriterion("`size` <=", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeLike(String value) {
            addCriterion("`size` like", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeNotLike(String value) {
            addCriterion("`size` not like", value, "size");
            return (Criteria) this;
        }

        public Criteria andSizeIn(List<String> values) {
            addCriterion("`size` in", values, "size");
            return (Criteria) this;
        }

        public Criteria andSizeNotIn(List<String> values) {
            addCriterion("`size` not in", values, "size");
            return (Criteria) this;
        }

        public Criteria andSizeBetween(String value1, String value2) {
            addCriterion("`size` between", value1, value2, "size");
            return (Criteria) this;
        }

        public Criteria andSizeNotBetween(String value1, String value2) {
            addCriterion("`size` not between", value1, value2, "size");
            return (Criteria) this;
        }

        public Criteria andPagesIsNull() {
            addCriterion("pages is null");
            return (Criteria) this;
        }

        public Criteria andPagesIsNotNull() {
            addCriterion("pages is not null");
            return (Criteria) this;
        }

        public Criteria andPagesEqualTo(String value) {
            addCriterion("pages =", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotEqualTo(String value) {
            addCriterion("pages <>", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesGreaterThan(String value) {
            addCriterion("pages >", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesGreaterThanOrEqualTo(String value) {
            addCriterion("pages >=", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLessThan(String value) {
            addCriterion("pages <", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLessThanOrEqualTo(String value) {
            addCriterion("pages <=", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLike(String value) {
            addCriterion("pages like", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotLike(String value) {
            addCriterion("pages not like", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesIn(List<String> values) {
            addCriterion("pages in", values, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotIn(List<String> values) {
            addCriterion("pages not in", values, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesBetween(String value1, String value2) {
            addCriterion("pages between", value1, value2, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotBetween(String value1, String value2) {
            addCriterion("pages not between", value1, value2, "pages");
            return (Criteria) this;
        }

        public Criteria andBkAbstractIsNull() {
            addCriterion("bk_abstract is null");
            return (Criteria) this;
        }

        public Criteria andBkAbstractIsNotNull() {
            addCriterion("bk_abstract is not null");
            return (Criteria) this;
        }

        public Criteria andBkAbstractEqualTo(String value) {
            addCriterion("bk_abstract =", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractNotEqualTo(String value) {
            addCriterion("bk_abstract <>", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractGreaterThan(String value) {
            addCriterion("bk_abstract >", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractGreaterThanOrEqualTo(String value) {
            addCriterion("bk_abstract >=", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractLessThan(String value) {
            addCriterion("bk_abstract <", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractLessThanOrEqualTo(String value) {
            addCriterion("bk_abstract <=", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractLike(String value) {
            addCriterion("bk_abstract like", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractNotLike(String value) {
            addCriterion("bk_abstract not like", value, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractIn(List<String> values) {
            addCriterion("bk_abstract in", values, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractNotIn(List<String> values) {
            addCriterion("bk_abstract not in", values, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractBetween(String value1, String value2) {
            addCriterion("bk_abstract between", value1, value2, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andBkAbstractNotBetween(String value1, String value2) {
            addCriterion("bk_abstract not between", value1, value2, "bkAbstract");
            return (Criteria) this;
        }

        public Criteria andPublishIsNull() {
            addCriterion("publish is null");
            return (Criteria) this;
        }

        public Criteria andPublishIsNotNull() {
            addCriterion("publish is not null");
            return (Criteria) this;
        }

        public Criteria andPublishEqualTo(String value) {
            addCriterion("publish =", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishNotEqualTo(String value) {
            addCriterion("publish <>", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishGreaterThan(String value) {
            addCriterion("publish >", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishGreaterThanOrEqualTo(String value) {
            addCriterion("publish >=", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishLessThan(String value) {
            addCriterion("publish <", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishLessThanOrEqualTo(String value) {
            addCriterion("publish <=", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishLike(String value) {
            addCriterion("publish like", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishNotLike(String value) {
            addCriterion("publish not like", value, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishIn(List<String> values) {
            addCriterion("publish in", values, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishNotIn(List<String> values) {
            addCriterion("publish not in", values, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishBetween(String value1, String value2) {
            addCriterion("publish between", value1, value2, "publish");
            return (Criteria) this;
        }

        public Criteria andPublishNotBetween(String value1, String value2) {
            addCriterion("publish not between", value1, value2, "publish");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}